[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Getfem-commits] r4889 - in /trunk/getfem: interface/src/ interface/test
From: |
Yves . Renard |
Subject: |
[Getfem-commits] r4889 - in /trunk/getfem: interface/src/ interface/tests/matlab/ src/gmm/ |
Date: |
Wed, 18 Mar 2015 14:30:19 -0000 |
Author: renard
Date: Wed Mar 18 15:30:18 2015
New Revision: 4889
URL: http://svn.gna.org/viewcvs/getfem?rev=4889&view=rev
Log:
minor changes
Modified:
trunk/getfem/interface/src/gf_asm.cc
trunk/getfem/interface/tests/matlab/demo_continuation.m
trunk/getfem/src/gmm/gmm_dense_matrix_functions.h
Modified: trunk/getfem/interface/src/gf_asm.cc
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/src/gf_asm.cc?rev=4889&r1=4888&r2=4889&view=diff
==============================================================================
--- trunk/getfem/interface/src/gf_asm.cc (original)
+++ trunk/getfem/interface/src/gf_asm.cc Wed Mar 18 15:30:18 2015
@@ -21,6 +21,7 @@
#include <getfemint.h>
#include <getfemint_mesh_im.h>
+#include <getfemint_models.h>
#include <getfem/getfem_assembling.h>
#include <getfem/getfem_level_set.h>
#include <getfemint_misc.h>
@@ -414,10 +415,21 @@
std::string expr = in.pop().to_string();
size_type region = in.pop().to_integer();
- getfem::ga_workspace workspace;
+ getfem::ga_workspace workspace1;
size_type nbdof = 0;
std::map<std::string, getfem::model_real_plain_vector> vectors;
+ getfem::model dummy_md;
+ const getfem::model *md = &dummy_md;
+ bool with_model = false;
+
+ if (in.remaining() && in.front().is_model()) {
+ md = &(in.pop().to_getfemint_model()->model());
+ with_model = true;
+ }
+ getfem::ga_workspace workspace2(*md);
+ getfem::ga_workspace *pworkspace = with_model ? &workspace2 : &workspace1;
+
while (in.remaining()) {
std::string varname = in.pop().to_string();
@@ -436,39 +448,39 @@
gmm::copy(U, vectors[varname]);
if (is_cte) {
if (mf)
- workspace.add_fem_constant(varname, *mf, vectors[varname]);
+ pworkspace->add_fem_constant(varname, *mf, vectors[varname]);
else if (mimd)
- workspace.add_im_data(varname, *mimd, vectors[varname]);
+ pworkspace->add_im_data(varname, *mimd, vectors[varname]);
else
- workspace.add_fixed_size_constant(varname, vectors[varname]);
+ pworkspace->add_fixed_size_constant(varname, vectors[varname]);
} else {
if (mf) {
gmm::sub_interval I(nbdof, mf->nb_dof());
nbdof += mf->nb_dof();
- workspace.add_fem_variable(varname, *mf, I, vectors[varname]);
+ pworkspace->add_fem_variable(varname, *mf, I, vectors[varname]);
} else if (mimd) {
THROW_BADARG("Data defined on integration points can not be a
variable");
} else {
gmm::sub_interval I(nbdof, U.size());
nbdof += U.size();
- workspace.add_fixed_size_variable(varname, I, vectors[varname]);
+ pworkspace->add_fixed_size_variable(varname, I, vectors[varname]);
}
}
}
- workspace.add_expression(expr, gfi_mim->mesh_im(), region);
+ pworkspace->add_expression(expr, gfi_mim->mesh_im(), region);
switch (order) {
case 0:
- workspace.assembly(0);
- out.pop().from_scalar(workspace.assembled_potential());
+ pworkspace->assembly(0);
+ out.pop().from_scalar(pworkspace->assembled_potential());
break;
case 1:
{
getfem::model_real_plain_vector residual(nbdof);
- workspace.set_assembled_vector(residual);
- workspace.assembly(1);
+ pworkspace->set_assembled_vector(residual);
+ pworkspace->assembly(1);
out.pop().from_dlvector(residual);
}
break;
@@ -476,8 +488,8 @@
case 2:
{
getfem::model_real_sparse_matrix K(nbdof, nbdof);
- workspace.set_assembled_matrix(K);
- workspace.assembly(2);
+ pworkspace->set_assembled_matrix(K);
+ pworkspace->assembly(2);
gf_real_sparse_by_col KK(nbdof, nbdof);
gmm::copy(K, KK);
out.pop().from_sparse(KK);
@@ -1051,7 +1063,7 @@
);
- /address@hidden @CELL{...} = ('generic', @tmim mim, @int order, @str
expression, @int region, address@hidden varname, @int is_variable[,
address@hidden mf, @tmimd mimd}], value], ...)
+ /address@hidden @CELL{...} = ('generic', @tmim mim, @int order, @str
expression, @int region, address@hidden model], address@hidden varname, @int
is_variable[, address@hidden mf, @tmimd mimd}], value], ...)
High-level generic assembly procedure for volumic assembly.
Performs the generic assembly of `expression` with the integration
@@ -1064,8 +1076,12 @@
(order = 0) or the (vector) residual (order = 1) or the
tangent (matrix) (order = 2) is to be computed.
+ `model` is an optional parameter allowing to take into account
+ all the variable and data of a model.
+
The variables and constant (data) are listed after the
- region number. For each variable/constant, first the variable/constant
+ region number (or optionally the model).
+ For each variable/constant, first the variable/constant
name should be given (as it is referred in the assembly string), then
1 if it is a variable or 0 for a constant, then the finite element
method if it is a fem variable/constant or the mesh_im_data if it is
Modified: trunk/getfem/interface/tests/matlab/demo_continuation.m
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/interface/tests/matlab/demo_continuation.m?rev=4889&r1=4888&r2=4889&view=diff
==============================================================================
--- trunk/getfem/interface/tests/matlab/demo_continuation.m (original)
+++ trunk/getfem/interface/tests/matlab/demo_continuation.m Wed Mar 18
15:30:18 2015
@@ -131,8 +131,8 @@
elseif (strcmp(sing_label, 'smooth bifurcation point'))
[U_bp, lambda_bp, T_U_bp, T_lambda_bp]...
= gf_cont_struct_get(S, 'sing_data');
- save([datapath 'continuation_step_' sprintf('%d', step) '_bp.mat'], ...
- 'U_bp', 'lambda_bp', 'T_U_bp', 'T_lambda_bp');
+ % save([datapath 'continuation_step_' sprintf('%d', step) '_bp.mat'], ...
+ % 'U_bp', 'lambda_bp', 'T_U_bp', 'T_lambda_bp');
s = ['step ' sprintf('%d', step) ': smooth bifurcation point, '...
sprintf('%d', size(T_U_bp, 2)) ' branch(es) located'];
end
Modified: trunk/getfem/src/gmm/gmm_dense_matrix_functions.h
URL:
http://svn.gna.org/viewcvs/getfem/trunk/getfem/src/gmm/gmm_dense_matrix_functions.h?rev=4889&r1=4888&r2=4889&view=diff
==============================================================================
--- trunk/getfem/src/gmm/gmm_dense_matrix_functions.h (original)
+++ trunk/getfem/src/gmm/gmm_dense_matrix_functions.h Wed Mar 18 15:30:18 2015
@@ -97,7 +97,7 @@
schur(TMP, S, Q);
#else
GMM_ASSERT1(false, "Please recompile with lapack and blas librairies "
- "to access to use sqrtm matrix function.");
+ "to use sqrtm matrix function.");
#endif
sqrtm_utri_inplace(S);
gmm::mult(Q, S, TMP);
@@ -260,7 +260,7 @@
schur(A, S, Q); // A = Q * S * Q^T
#else
GMM_ASSERT1(false, "Please recompile with lapack and blas librairies "
- "to access to use logm matrix function.");
+ "to use logm matrix function.");
#endif
bool convert_to_complex(false);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Getfem-commits] r4889 - in /trunk/getfem: interface/src/ interface/tests/matlab/ src/gmm/,
Yves . Renard <=