[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r5490 - in /trunk/getfem: interface/src/gf_model_set.cc
From: |
Yves . Renard |
Subject: |
[Getfem-commits] r5490 - in /trunk/getfem: interface/src/gf_model_set.cc src/getfem/getfem_generic_assembly.h src/getfem_generic_assembly.cc |
Date: |
Tue, 29 Nov 2016 20:15:26 -0000 |
Author: renard
Date: Tue Nov 29 21:15:25 2016
New Revision: 5490
URL: http://svn.gna.org/viewcvs/getfem?rev=5490&view=rev
Log:
interface for the element extrapolation transformation
Modified:
trunk/getfem/interface/src/gf_model_set.cc
trunk/getfem/src/getfem/getfem_generic_assembly.h
trunk/getfem/src/getfem_generic_assembly.cc
Modified: trunk/getfem/interface/src/gf_model_set.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/src/gf_model_set.cc?rev=5490&r1=5489&r2=5490&view=diff
==============================================================================
--- trunk/getfem/interface/src/gf_model_set.cc (original)
+++ trunk/getfem/interface/src/gf_model_set.cc Tue Nov 29 21:15:25 2016
@@ -53,6 +53,8 @@
};
typedef std::shared_ptr<sub_gf_md_set> psub_command;
+
+typedef std::map<size_type, size_type> elt_corr_cont;
// Function to avoid warning in macro with unused arguments.
template <typename T> static inline void dummy_func(T &) {}
@@ -423,6 +425,46 @@
*tm, expr);
);
+ /address@hidden ('add element extrapolation transformation', @str
transname, @tmesh source_mesh, @mat elt_corr)
+ Add a special interpolation transformation which represents the identity
+ transformation but allows to evaluate the expression on another element
+ than the current element by polynomial extrapolation. It is used for
+ stabilization term in fictitious domain applications. the array elt_cor
+ should be a two entry array whose first line contains the elements
+ concerned by the transformation and the second line the respective
+ elements on which the extrapolation has to be made. If an element
+ is not listed in elt_cor the evaluation is just made on the current
+ element. @*/
+ sub_command
+ ("add element extrapolation transformation", 3, 3, 0, 0,
+ std::string transname = in.pop().to_string();
+ getfem::mesh *sm = extract_mesh_object(in.pop());
+ iarray v = in.pop().to_iarray();
+ if (v.getm() != 2 || v.getp() != 1 || v.getq() != 1)
+ THROW_BADARG("Invalid format for the convex correspondance
list");
+ elt_corr_cont elt_corr;
+ for (size_type j=0; j < v.getn(); j++)
+ elt_corr[v(0,j)-config::base_index()] = v(1,j)-config::base_index();
+ getfem::add_element_extrapolation_transformation(*md, transname, *sm,
+ elt_corr);
+ );
+
+ /address@hidden ('set element extrapolation correspondance', @str
transname, @mat elt_corr)
+ Change the correspondance map of an element extrapolation interpolate
+ transformation. @*/
+ sub_command
+ ("set element extrapolation correspondance", 2, 2, 0, 0,
+ std::string transname = in.pop().to_string();
+ iarray v = in.pop().to_iarray();
+ if (v.getm() != 2 || v.getp() != 1 || v.getq() != 1)
+ THROW_BADARG("Invalid format for the convex correspondance
list");
+ elt_corr_cont elt_corr;
+ for (size_type j=0; j < v.getn(); j++)
+ elt_corr[v(0,j)-config::base_index()] = v(1,j)-config::base_index();
+ getfem::set_element_extrapolation_correspondance(*md, transname,
+ elt_corr);
+ );
+
/address@hidden ('add raytracing transformation', @str transname, @scalar
release_distance)
Add a raytracing interpolate transformation called `transname` to a model
to be used by the generic assembly bricks.
Modified: trunk/getfem/src/getfem/getfem_generic_assembly.h
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem/getfem_generic_assembly.h?rev=5490&r1=5489&r2=5490&view=diff
==============================================================================
--- trunk/getfem/src/getfem/getfem_generic_assembly.h (original)
+++ trunk/getfem/src/getfem/getfem_generic_assembly.h Tue Nov 29 21:15:25 2016
@@ -659,13 +659,14 @@
stabilization term in fictitious domain applications. the map elt_cor
list the element concerned by the transformation and associate them
to the element on which the extrapolation has to be made. If an element
- is not listed in elt_cor the evaluation i just made on the current
element.
+ is not listed in elt_cor the evaluation is just made on the current
+ element.
*/
- void add_interpolate_transformation_element_extrapolation
+ void add_element_extrapolation_transformation
(model &md, const std::string &name, const mesh &sm,
std::map<size_type, size_type> &elt_corr);
- void add_interpolate_transformation_element_extrapolation
+ void add_element_extrapolation_transformation
(ga_workspace &workspace, const std::string &name, const mesh &sm,
std::map<size_type, size_type> &elt_corr);
Modified: trunk/getfem/src/getfem_generic_assembly.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/getfem_generic_assembly.cc?rev=5490&r1=5489&r2=5490&view=diff
==============================================================================
--- trunk/getfem/src/getfem_generic_assembly.cc (original)
+++ trunk/getfem/src/getfem_generic_assembly.cc Tue Nov 29 21:15:25 2016
@@ -14245,7 +14245,7 @@
};
- void add_interpolate_transformation_element_extrapolation
+ void add_element_extrapolation_transformation
(model &md, const std::string &name, const mesh &sm,
std::map<size_type, size_type> &elt_corr) {
pinterpolate_transformation
@@ -14254,7 +14254,7 @@
md.add_interpolate_transformation(name, p);
}
- void add_interpolate_transformation_element_extrapolation
+ void add_element_extrapolation_transformation
(ga_workspace &workspace, const std::string &name, const mesh &sm,
std::map<size_type, size_type> &elt_corr) {
pinterpolate_transformation
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r5490 - in /trunk/getfem: interface/src/gf_model_set.cc src/getfem/getfem_generic_assembly.h src/getfem_generic_assembly.cc,
Yves . Renard <=