diff -Nru gggears-0.1.2+rev89/bin/gggears gggears-0.1.3/bin/gggears --- gggears-0.1.2+rev89/bin/gggears 2010-05-23 14:33:57.000000000 +0000 +++ gggears-0.1.3/bin/gggears 2010-09-19 12:26:08.000000000 +0000 @@ -4,10 +4,10 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatical generation of gears geometry, FE-mesh and FE-models - https://sourceforge.net/projects/gggears - Copyright (C) 2009-2010 Konstantinos Poulios + https://gggears.sourceforge.net/ + Copyright (C) 2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/ChangeLog gggears-0.1.3/ChangeLog --- gggears-0.1.2+rev89/ChangeLog 2010-05-23 14:33:57.000000000 +0000 +++ gggears-0.1.3/ChangeLog 2010-09-19 12:26:08.000000000 +0000 @@ -1,3 +1,28 @@ +Version 0.1.3: +-------------- + +* New GetFem++ solver written in C++ (gggears_femsolver). + +* Generation of a post-processing *.pvsm file for ParaView. + + +Version 0.1.2: +-------------- + +* Tooth flank modifications (tip relief, profile crowning, lead angle, + end relief, lead crowning). + +* Basic user input sanity checks. + + +Version 0.1.1: +-------------- + +* User input for material parameters. + +* Geometry preview window. + + Version 0.1: ------------ diff -Nru gggears-0.1.2+rev89/debian/changelog gggears-0.1.3/debian/changelog --- gggears-0.1.2+rev89/debian/changelog 2010-09-15 23:01:16.000000000 +0000 +++ gggears-0.1.3/debian/changelog 2010-09-19 13:02:21.000000000 +0000 @@ -1,5 +1,5 @@ -gggears (0.1.2+rev89-0ubuntu0~ppal0) lucid; urgency=low +gggears (0.1.3-0ubuntu0~ppal0) lucid; urgency=low * New upstream release - -- Konstantinos Poulios Thu, 16 Sep 2010 01:01:14 +0200 + -- Konstantinos Poulios Sun, 19 Sep 2010 15:01:57 +0200 diff -Nru gggears-0.1.2+rev89/debian/control gggears-0.1.3/debian/control --- gggears-0.1.2+rev89/debian/control 2010-09-14 19:22:09.000000000 +0000 +++ gggears-0.1.3/debian/control 2010-09-19 13:01:17.000000000 +0000 @@ -13,6 +13,7 @@ Depends: python, python-gtk2, python-lxml, python-gtkglext1, gmsh-nogui | gmsh, ${misc:Depends}, ${shlibs:Depends} +Suggests: paraview (>= 3.6.0) XB-Python-Version: current Description: Gear Transmissions FE-Modelization GGGears is an application aiming an allmost automatic geometry and FE-mesh diff -Nru gggears-0.1.2+rev89/debian/copyright gggears-0.1.3/debian/copyright --- gggears-0.1.2+rev89/debian/copyright 2010-09-13 20:20:21.000000000 +0000 +++ gggears-0.1.3/debian/copyright 2010-09-19 12:56:59.000000000 +0000 @@ -1,7 +1,7 @@ This package was debianized by: Konstantinos Poulios - on Sun, 23 May 2010 17:01:15 +0200 + on Sun, 19 Sep 2010 14:56:46 +0200 It was downloaded from: diff -Nru gggears-0.1.2+rev89/debian/patches/debian-changes-0.1.2+rev89-0ubuntu0~ppal0 gggears-0.1.3/debian/patches/debian-changes-0.1.2+rev89-0ubuntu0~ppal0 --- gggears-0.1.2+rev89/debian/patches/debian-changes-0.1.2+rev89-0ubuntu0~ppal0 2010-09-15 23:05:18.000000000 +0000 +++ gggears-0.1.3/debian/patches/debian-changes-0.1.2+rev89-0ubuntu0~ppal0 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ -Description: Upstream changes introduced in version 0.1.2+rev89-0ubuntu0~ppal0 - This patch has been created by dpkg-source during the package build. - Here's the last changelog entry, hopefully it gives details on why - those changes were made: - . - gggears (0.1.2+rev89-0ubuntu0~ppal0) lucid; urgency=low - . - * New upstream release - . - The person named in the Author field signed this changelog entry. -Author: Konstantinos Poulios - ---- -The information above should follow the Patch Tagging Guidelines, please -checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here -are templates for supplementary fields that you might want to add: - -Origin: , -Bug: -Bug-Debian: http://bugs.debian.org/ -Forwarded: -Reviewed-By: -Last-Update: - ---- gggears-0.1.2+rev89.orig/fem/gggears_femsolver.cc -+++ gggears-0.1.2+rev89/fem/gggears_femsolver.cc -@@ -30,7 +30,6 @@ - #include - #include - #include --#include - - using getfem::size_type; - using getfem::scalar_type; -@@ -365,7 +364,6 @@ int fem_model::export_results(std::strin - } - - int main(int argc, char *argv[]) { -- MPI_Init(&argc, &argv); - // GETFEM_MPI_INIT(argc,argv); // For parallelized version - // FE_ENABLE_EXCEPT; // Enable floating point exception for Nan. - -@@ -401,6 +399,5 @@ int main(int argc, char *argv[]) { - // } - // GMM_STANDARD_CATCH_ERROR; - // GETFEM_MPI_FINALIZE; --MPI_Finalize(); - return 0; - } ---- gggears-0.1.2+rev89.orig/fem/Makefile -+++ gggears-0.1.2+rev89/fem/Makefile -@@ -5,8 +5,8 @@ _OBJ = gggears_femsolver.o - OBJ_DIR = obj - OBJ = $(patsubst %,$(OBJ_DIR)/%,$(_OBJ)) - --CPP = mpic++ --LDR = mpic++ -+CPP = g++ -+LDR = g++ - #DEBUG = -g -O0 - CFLAGS = -Wall $(DEBUG) - LFLAGS = -Wall -Wl,--as-needed -lgetfem $(DEBUG) diff -Nru gggears-0.1.2+rev89/debian/patches/series gggears-0.1.3/debian/patches/series --- gggears-0.1.2+rev89/debian/patches/series 2010-09-15 23:05:18.000000000 +0000 +++ gggears-0.1.3/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -debian-changes-0.1.2+rev89-0ubuntu0~ppal0 diff -Nru gggears-0.1.2+rev89/debian/watch gggears-0.1.3/debian/watch --- gggears-0.1.2+rev89/debian/watch 2010-09-13 20:20:21.000000000 +0000 +++ gggears-0.1.3/debian/watch 2010-09-19 12:54:04.000000000 +0000 @@ -1,3 +1,3 @@ version=3 -http://sf.net/pdfshuffler/gggears-(.*)\.tar\.gz +http://sf.net/gggears/gggears-(.*)\.tar\.gz diff -Nru gggears-0.1.2+rev89/fem/gggears_femsolver.cc gggears-0.1.3/fem/gggears_femsolver.cc --- gggears-0.1.2+rev89/fem/gggears_femsolver.cc 2010-09-14 09:08:37.000000000 +0000 +++ gggears-0.1.3/fem/gggears_femsolver.cc 2010-09-19 12:26:08.000000000 +0000 @@ -1,9 +1,9 @@ // -------------------------------------------------------------------------- // -// GGGears 0.1 +// GGGears 0.1.3 // Automatic generation of gears geometry, FE-mesh and FE-models -// http://gggears/sourceforge.net/ -// Copyright (C) 2009-2010 Konstantinos Poulios +// http://gggears.sourceforge.net/ +// Copyright (C) 2010 Konstantinos Poulios // // -------------------------------------------------------------------------- // @@ -30,7 +30,6 @@ #include #include #include -#include using getfem::size_type; using getfem::scalar_type; @@ -238,13 +237,12 @@ static std::string varn[3] = {"x", "y", "z"}; mu::Parser parser[qdim]; base_node pt(qdim); - id1 = name2id.find(BCs[j].var1); - id2 = name2id.find(BCs[j].var2); if (BCs[j].type == DIRICHLET) { if (id1 != name2id.end()) { size_type i = id1->second; std::stringstream constraint_name(""); constraint_name << "dirichlet_" << BCs[j].id1; + BCs[j].name = constraint_name.str(); if (BCs[j].data_str != "") { std::vector expression; comma_split_string(BCs[j].data_str, qdim, expression); @@ -261,19 +259,20 @@ for (int jj = 0; jj < qdim; jj++) F[dof*qdim+jj] = scalar_type(parser[jj].Eval()); } - md.add_initialized_fem_data(constraint_name.str(), mfrhss[i], F); + md.add_initialized_fem_data(BCs[j].name, mfrhss[i], F); } else { plain_vector F(qdim); - md.add_initialized_fixed_size_data(constraint_name.str(), F); + md.add_initialized_fixed_size_data(BCs[j].name, F); } getfem::add_Dirichlet_condition_with_multipliers - (md, mims[i], "u_" + BCs[j].var1, mfus[i], BCs[j].id1, constraint_name.str()); + (md, mims[i], "u_" + BCs[j].var1, mfus[i], BCs[j].id1, BCs[j].name); } } else if (BCs[j].type == NEUMANN) { if (id1 != name2id.end()) { size_type i = id1->second; std::stringstream constraint_name(""); constraint_name << "neumann_" << BCs[j].id1; + BCs[j].name = constraint_name.str(); if (BCs[j].data_str != "") { std::vector expression; comma_split_string(BCs[j].data_str, qdim, expression); @@ -290,9 +289,9 @@ for (int jj = 0; jj < qdim; jj++) F[dof*qdim+jj] = scalar_type(parser[jj].Eval()); } - md.add_initialized_fem_data(constraint_name.str(), mfrhss[i], F); + md.add_initialized_fem_data(BCs[j].name, mfrhss[i], F); getfem::add_source_term_brick - (md, mims[i], "u_" + BCs[j].var1, constraint_name.str(), BCs[j].id1); + (md, mims[i], "u_" + BCs[j].var1, BCs[j].name, BCs[j].id1); } } } else if (BCs[j].type == CONTACT) { @@ -302,20 +301,21 @@ std::stringstream constraint_name(""); constraint_name << "mult_" << BCs[j].id1 << "_" << BCs[j].id2 << "_" << BCs[j].var1 << "_" << BCs[j].var2 << "_n"; - std::string mult_name(constraint_name.str()); + BCs[j].name = constraint_name.str(); getfem::add_nonmatching_meshes_contact_brick (md, mims[i1], mims[i2], "u_" + BCs[j].var1, "u_" + BCs[j].var2, - mult_name, "r", BCs[j].id1, BCs[j].id2, true, true); + BCs[j].name, "r", BCs[j].id1, BCs[j].id2, true, true); } } else if (BCs[j].type == CONTACT_RIGID) { if (id1 != name2id.end()) { size_type i = id1->second; std::stringstream constraint_name(""); constraint_name << "mult_" << BCs[j].var1; + BCs[j].name = constraint_name.str(); size_type nbc = mfus[i].basic_dof_on_region(BCs[j].id1).card() / qdim; - md.add_fixed_size_variable(constraint_name.str(), nbc); + md.add_fixed_size_variable(BCs[j].name, nbc); getfem::add_contact_with_rigid_obstacle_brick - (md, mims[i], "u_" + BCs[j].var1, constraint_name.str(), "r", BCs[j].id1, + (md, mims[i], "u_" + BCs[j].var1, BCs[j].name, "r", BCs[j].id1, BCs[j].data_str, false); } } else if (BCs[j].type == RIGID_Z) { @@ -327,9 +327,10 @@ cn = mfus[i].basic_dof_on_region(meshes[i].region(BCs[j].id1)); for (dal::bv_visitor dof(cn); !dof.finished(); ++dof) if ( ((dof + 1) % qdim) == 0) M(0,dof) = scalar_type(1); - md.add_fixed_size_variable("mult_rigid_z_" + BCs[j].var1, 1); + BCs[j].name = "mult_rigid_z_" + BCs[j].var1; + md.add_fixed_size_variable(BCs[j].name, 1); getfem::add_constraint_with_multipliers - (md, "u_" + BCs[j].var1, "mult_rigid_z_" + BCs[j].var1, M, F); + (md, "u_" + BCs[j].var1, BCs[j].name, M, F); } } } @@ -339,6 +340,14 @@ int fem_model::solve() { + size_type disp_dofs = 0; + for (size_type i = 0; i < bodies.size(); i++) { + cout << mfus[i].nb_dof() << " dofs in " << bodies[i].name << endl; + disp_dofs += mfus[i].nb_dof(); + } + cout << md.nb_dof() - disp_dofs << " dofs in multiplier variables" << endl; + cout << "Total number of dofs: " << md.nb_dof() << endl; + gmm::iteration iter(1e-6, 1, 40000); gmm::default_newton_line_search ls; getfem::standard_solve(md, iter, getfem::rselect_linear_solver(md,"mumps"), ls); @@ -347,6 +356,9 @@ int fem_model::export_results(std::string filename) { + plain_vector RHS(md.nb_dof()); + gmm::copy(md.real_rhs(), RHS); + for (size_type i = 0; i < bodies.size(); i++) { std::string name = bodies[i].name; getfem::vtk_export exp(filename + "_" + name + ".vtk", true); @@ -360,12 +372,40 @@ getfem::compute_isotropic_linearized_Von_Mises_or_Tresca (md, "u_" + name, "lambda_" + name, "mu_" + name, mfrhss[i], VM, false); exp.write_point_data(mfrhss[i], VM, "Von_Mises_Stresses_" + name); + + plain_vector Forces(mfus[i].nb_dof()); + gmm::copy(gmm::sub_vector(RHS, md.interval_of_variable("u_" + name)), Forces); + gmm::scale(Forces, -1.0); + exp.write_point_data(mfus[i], Forces, "Forces_" + name); + + plain_vector NCForces(mfus[i].nb_dof()); + for (size_type j = 0; j < BCs.size(); j++) { + bool inclusion = false; + std::map::iterator id1, id2; + id1 = name2id.find(BCs[j].var1); + int i1 = (id1 != name2id.end()) ? int(id1->second) : -1; + if (BCs[j].type == CONTACT) { + id2 = name2id.find(BCs[j].var2); + int i2 = (id2 != name2id.end()) ? int(id2->second) : -1; + if ((i1 == int(i) || i2 == int(i)) && (i1 >= 0 && i2 >= 0)) + inclusion = true; + } else if (BCs[j].type == CONTACT_RIGID) { + if ((i1 == int(i)) && (i1 >= 0)) inclusion = true; + } + if (inclusion) + gmm::mult_add(gmm::sub_matrix(md.real_tangent_matrix(), + md.interval_of_variable("u_" + name), + md.interval_of_variable(BCs[j].name) ), + gmm::scaled(md.real_variable(BCs[j].name), -1.0), + NCForces); + } + exp.write_point_data(mfus[i], NCForces, "Normal_Contact_Forces_on_" + name); + } return 0; } int main(int argc, char *argv[]) { - MPI_Init(&argc, &argv); // GETFEM_MPI_INIT(argc,argv); // For parallelized version // FE_ENABLE_EXCEPT; // Enable floating point exception for Nan. @@ -401,6 +441,5 @@ // } // GMM_STANDARD_CATCH_ERROR; // GETFEM_MPI_FINALIZE; -MPI_Finalize(); return 0; } diff -Nru gggears-0.1.2+rev89/fem/gggears_femsolver.h gggears-0.1.3/fem/gggears_femsolver.h --- gggears-0.1.2+rev89/fem/gggears_femsolver.h 2010-09-12 21:33:05.000000000 +0000 +++ gggears-0.1.3/fem/gggears_femsolver.h 2010-09-19 12:26:08.000000000 +0000 @@ -1,9 +1,9 @@ // -------------------------------------------------------------------------- // -// GGGears 0.1 +// GGGears 0.1.3 // Automatic generation of gears geometry, FE-mesh and FE-models -// http://gggears/sourceforge.net/ -// Copyright (C) 2009-2010 Konstantinos Poulios +// http://gggears.sourceforge.net/ +// Copyright (C) 2010 Konstantinos Poulios // // -------------------------------------------------------------------------- // @@ -53,6 +53,7 @@ struct fem_BC { size_type type; + std::string name; std::string var1, var2; std::vector rgs1, rgs2; std::vector data_vec; @@ -62,13 +63,13 @@ fem_BC(size_type type_, std::string var1_, std::string var2_, std::vector rgs1_, std::vector rgs2_, std::vector vec_, std::string str_) - : type(type_), var1(var1_), var2(var2_), rgs1(rgs1_), rgs2(rgs2_), + : type(type_), name(""), var1(var1_), var2(var2_), rgs1(rgs1_), rgs2(rgs2_), data_vec(vec_), data_str(str_), id1(0), id2(0) {}; fem_BC(size_type type_) - : type(type_), var1(""), var2(""), rgs1(0), rgs2(0), + : type(type_), name(""), var1(""), var2(""), rgs1(0), rgs2(0), data_vec(0), data_str(""), id1(0), id2(0) {}; fem_BC() - : type(DIRICHLET), var1(""), var2(""), rgs1(0), rgs2(0), + : type(DIRICHLET), name(""), var1(""), var2(""), rgs1(0), rgs2(0), data_vec(0), data_str(""), id1(0), id2(0) {}; }; diff -Nru gggears-0.1.2+rev89/fem/Makefile gggears-0.1.3/fem/Makefile --- gggears-0.1.2+rev89/fem/Makefile 2010-09-13 08:20:22.000000000 +0000 +++ gggears-0.1.3/fem/Makefile 2010-09-18 09:21:09.000000000 +0000 @@ -5,8 +5,8 @@ OBJ_DIR = obj OBJ = $(patsubst %,$(OBJ_DIR)/%,$(_OBJ)) -CPP = mpic++ -LDR = mpic++ +CPP = g++ +LDR = g++ #DEBUG = -g -O0 CFLAGS = -Wall $(DEBUG) LFLAGS = -Wall -Wl,--as-needed -lgetfem $(DEBUG) diff -Nru gggears-0.1.2+rev89/gggears/compressed_entry.py gggears-0.1.3/gggears/compressed_entry.py --- gggears-0.1.2+rev89/gggears/compressed_entry.py 2010-07-26 17:05:10.000000000 +0000 +++ gggears-0.1.3/gggears/compressed_entry.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,9 +4,9 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ + http://gggears.sourceforge.net/ Copyright (C) 2009-2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/gggears/fem.py gggears-0.1.3/gggears/fem.py --- gggears-0.1.2+rev89/gggears/fem.py 2010-09-15 07:51:35.000000000 +0000 +++ gggears-0.1.3/gggears/fem.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,9 +4,9 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ + http://gggears.sourceforge.net/ Copyright (C) 2009-2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/gggears/gear_tab.py gggears-0.1.3/gggears/gear_tab.py --- gggears-0.1.2+rev89/gggears/gear_tab.py 2010-09-15 07:53:58.000000000 +0000 +++ gggears-0.1.3/gggears/gear_tab.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,9 +4,9 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ + http://gggears.sourceforge.net/ Copyright (C) 2009-2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/gggears/gear_tfm.py gggears-0.1.3/gggears/gear_tfm.py --- gggears-0.1.2+rev89/gggears/gear_tfm.py 2010-08-01 23:29:55.000000000 +0000 +++ gggears-0.1.3/gggears/gear_tfm.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,10 +4,10 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ - Copyright (C) 2009-2010 Konstantinos Poulios + http://gggears.sourceforge.net/ + Copyright (C) 2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/gggears/gggears.py gggears-0.1.3/gggears/gggears.py --- gggears-0.1.2+rev89/gggears/gggears.py 2010-09-15 07:50:40.000000000 +0000 +++ gggears-0.1.3/gggears/gggears.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,9 +4,9 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ + http://gggears.sourceforge.net/ Copyright (C) 2009-2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/gggears/post_proc.py gggears-0.1.3/gggears/post_proc.py --- gggears-0.1.2+rev89/gggears/post_proc.py 2010-09-15 22:56:35.000000000 +0000 +++ gggears-0.1.3/gggears/post_proc.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,9 +4,9 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ + http://gggears.sourceforge.net/ Copyright (C) 2010 Konstantinos Poulios -------------------------------------------------------------------------- @@ -60,14 +60,21 @@ pxm = servermanager.ProxyManager() - view = servermanager.CreateRenderView() - view.Background = [0.5, 0.5, 0.5] - pxm.RegisterProxy('views', 'myview', view) - - lut = GetLookupTableForArray("Von_Mises_Stresses", 1, - RGBPoints = [0, 0, 0, 1, 1., 1, 0, 0], - ColorSpace = "HSV", - LockScalarRange = 1) + viewVM = servermanager.CreateRenderView() + viewVM.Background = [0.5, 0.5, 0.5] + pxm.RegisterProxy('views', 'View von Mises stresses', viewVM) + viewNCF = servermanager.CreateRenderView() + viewNCF.Background = [0.5, 0.5, 0.5] + pxm.RegisterProxy('views', 'View normal contact forces', viewNCF) + + lutVM = GetLookupTableForArray("Von_Mises_Stresses", 1, + RGBPoints = [0, 0, 0, 1, 1., 1, 0, 0], + ColorSpace = "HSV", + LockScalarRange = 1) + lutNCF = GetLookupTableForArray("Normal_Contact_Forces", 3, + RGBPoints = [0, 0, 0, 1, 1., 1, 0, 0], + ColorSpace = "HSV", + VectorMode = "Magnitude") maxval = 0. for var in varnames: @@ -92,26 +99,36 @@ warp = WarpByVector(Input=source) RenameSource('Deformed %s' % var, warp) - rep1 = servermanager.CreateRepresentation(source, view) + rep1 = servermanager.CreateRepresentation(source, viewVM) rep1.Representation = 'Wireframe' rep1.Opacity = 0.3 rep1.Visibility = 0 # rep1.ColorArrayName = 'Von_Mises_Stresses_%s' % var -# rep1.LookupTable = lut +# rep1.LookupTable = lutVM pxm.RegisterProxy('representations', - 'Representation undeformed %s' % var, rep1) + 'Undeformed %s' % var, rep1) - rep2 = servermanager.CreateRepresentation(warp, view) + rep2 = servermanager.CreateRepresentation(warp, viewVM) rep2.Representation = 'Surface With Edges' rep2.ColorArrayName = 'Von_Mises_Stresses_%s' % var rep2.EdgeColor = [0., 0., 0.] rep2.LineWidth = 0.5 - rep2.LookupTable = lut + rep2.LookupTable = lutVM pxm.RegisterProxy('representations', - 'Representation deformed %s' % var, rep2) + 'Deformed %s with von Mises stresses' % var, rep2) - lut.RGBPoints[4] = maxval - view.ResetCamera() + rep3 = servermanager.CreateRepresentation(warp, viewNCF) + rep3.Representation = 'Wireframe' + rep3.ColorArrayName = 'Normal_Contact_Forces_on_%s' % var + rep3.EdgeColor = [0., 0., 0.] + rep3.LineWidth = 0.5 + rep3.LookupTable = lutNCF + pxm.RegisterProxy('representations', + 'Deformed %s with normal contact forces' % var, rep3) + + lutVM.RGBPoints[4] = maxval + viewVM.ResetCamera() + viewNCF.ResetCamera() servermanager.SaveState('%s.pvsm' % basename) tobedeleted = GetProxyToDelete() diff -Nru gggears-0.1.2+rev89/gggears/preview.py gggears-0.1.3/gggears/preview.py --- gggears-0.1.2+rev89/gggears/preview.py 2010-07-27 22:07:52.000000000 +0000 +++ gggears-0.1.3/gggears/preview.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,10 +4,10 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ - Copyright (C) 2009-2010 Konstantinos Poulios + http://gggears.sourceforge.net/ + Copyright (C) 2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/gggears/preview_tfm.py gggears-0.1.3/gggears/preview_tfm.py --- gggears-0.1.2+rev89/gggears/preview_tfm.py 2010-08-04 14:35:29.000000000 +0000 +++ gggears-0.1.3/gggears/preview_tfm.py 2010-09-19 12:26:08.000000000 +0000 @@ -4,10 +4,10 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ - Copyright (C) 2009-2010 Konstantinos Poulios + http://gggears.sourceforge.net/ + Copyright (C) 2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/README gggears-0.1.3/README --- gggears-0.1.2+rev89/README 2010-05-23 14:33:57.000000000 +0000 +++ gggears-0.1.3/README 2010-09-19 12:26:08.000000000 +0000 @@ -1,17 +1,19 @@ -GGGears 0.1-alpha +GGGears 0.1.3 ---------------- -This is an alpha release of GGGears. GGGears is an application aiming an -allmost automatic geometry and FE-mesh generation of involute gears. -Furtheremore, the user can easily define loads and boundary conditions and -calculate the generated transmission model. +This is a development release of GGGears. GGGears is an application aiming an +allmost automatic FE-model generation for involute gears transmissions. +It includes a geometry generator, a mesh generator based on GMSH, a tooth +flank modifications module and a FE-model builder and solver based on +GetFem++. GGGears requires GMSH and version 4.1 or newer of GETFEM++ with MUMPS support enabled. GGGears is mostly written in Python using PyGTK. The geometry generator for -involute gears named as "toothprofiler" is written in Fortran. +involute gears named as "toothprofiler" is written in Fortran. The backend of +the tooth flank modifications module and the FE modeler are written in C++. In order to install GGGears run: @@ -34,15 +36,20 @@ parameters for an unlimited number of gear wheels. It also permits the definition of teeth contact pairs, loads and boundary conditions. -* The FE modeler which is based on GETFEM++ implements and solves a finite - element model of the previous generated geometry and FE-mesh and takes - into account the given loads and boundary conditions. +* Common tooth flank modification can be defined through the GUI and be + applied on the generated mesh before the finite element modelling. + +* The FE modeler builds and solves a finite element model based on the + previous generated geometry and FE-mesh as well as the given loads and + boundary conditions. + +* There is a geometry preview window. + +* There is good post-processing support for ParaView, including a + corresponding launcher in the menu of GGGears. Known issues with this release: ------------------------------- -* Output of the FE solver is not shown in the output window - -* Material properties cannot be defined by the user. Steel is assumed as - the material of all parts. +* Contact pair definitions cannot be deleted through the GUI. diff -Nru gggears-0.1.2+rev89/setup.py gggears-0.1.3/setup.py --- gggears-0.1.2+rev89/setup.py 2010-08-04 15:24:06.000000000 +0000 +++ gggears-0.1.3/setup.py 2010-09-19 12:26:08.000000000 +0000 @@ -3,9 +3,9 @@ """ -------------------------------------------------------------------------- - GGGears 0.1 + GGGears 0.1.3 Automatic generation of gears geometry, FE-mesh and FE-models - http://gggears/sourceforge.net/ + http://gggears.sourceforge.net/ Copyright (C) 2009-2010 Konstantinos Poulios -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/tfm/tfm_python.cc gggears-0.1.3/tfm/tfm_python.cc --- gggears-0.1.2+rev89/tfm/tfm_python.cc 2010-08-18 21:24:21.000000000 +0000 +++ gggears-0.1.3/tfm/tfm_python.cc 2010-09-19 12:26:08.000000000 +0000 @@ -1,8 +1,8 @@ // -------------------------------------------------------------------------- // -// GGGears 0.1 +// GGGears 0.1.3 // Automatic generation of gears geometry, FE-mesh and FE-models -// http://gggears/sourceforge.net/ +// http://gggears.sourceforge.net/ // Copyright (C) 2009-2010 Konstantinos Poulios // // -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/tfm/tooth_flank_modification.cc gggears-0.1.3/tfm/tooth_flank_modification.cc --- gggears-0.1.2+rev89/tfm/tooth_flank_modification.cc 2010-08-03 20:59:57.000000000 +0000 +++ gggears-0.1.3/tfm/tooth_flank_modification.cc 2010-09-19 12:26:08.000000000 +0000 @@ -1,8 +1,8 @@ // -------------------------------------------------------------------------- // -// GGGears 0.1 +// GGGears 0.1.3 // Automatic generation of gears geometry, FE-mesh and FE-models -// http://gggears/sourceforge.net/ +// http://gggears.sourceforge.net/ // Copyright (C) 2009-2010 Konstantinos Poulios // // -------------------------------------------------------------------------- diff -Nru gggears-0.1.2+rev89/tfm/tooth_flank_modification.h gggears-0.1.3/tfm/tooth_flank_modification.h --- gggears-0.1.2+rev89/tfm/tooth_flank_modification.h 2010-08-01 23:23:31.000000000 +0000 +++ gggears-0.1.3/tfm/tooth_flank_modification.h 2010-09-19 12:26:08.000000000 +0000 @@ -1,9 +1,9 @@ // -------------------------------------------------------------------------- // -// GGGears 0.1 +// GGGears 0.1.3 // Automatic generation of gears geometry, FE-mesh and FE-models -// http://gggears/sourceforge.net/ -// Copyright (C) 2009-2010 Konstantinos Poulios +// http://gggears.sourceforge.net/ +// Copyright (C) 2010 Konstantinos Poulios // // -------------------------------------------------------------------------- // diff -Nru gggears-0.1.2+rev89/TODO gggears-0.1.3/TODO --- gggears-0.1.2+rev89/TODO 2010-09-15 22:59:30.000000000 +0000 +++ gggears-0.1.3/TODO 2010-09-19 12:26:08.000000000 +0000 @@ -15,5 +15,7 @@ * Create GGGears mimetype. -* Create standard paraview and gmsh outputs containing all - simulation results in a single file. +* Calculate contact pressure instead of nodal forces. + +* Generate graphs of maximum contact pressure over the tooth + flank.