Thank you very much, now it works.
to completeness to the future readers, I would like to correct a typo I
made when asking for the command.
K= --equation--
gf_model_set(md, 'add initialized data', 'K', [K]);
gf_asm('generic', mim3, 2, 'K*(Test_ut.*ut)', -1, 'ut', 1, mf3,
zeros(gf_mesh_fem_get(mf3, 'nbdof'),1), 'K' , 0, K);

Again, thank you,
Have a nice day
Nicolò Cambiaso

Il giorno lun 30 set 2019 alle ore 22:19 Yves Renard <
yves.ren...@insa-lyon.fr> ha scritto:

>
> Dear Nicolo Cambiaso,
>
> You can use gf_asm to produce a mass matrix as you tried, but you have to
> specify a fem on which the variable is described. The correct syntax is for
> instance
>
> gf_asm('generic', mim3, 2, 'Grad_Test2_ut.Grad_Test_ut', -1, 'ut',1, mf,
> zero(gf_mesh_fem_get(mf, 'nbdof'),1));
>
> where mf is the mesh_fem structure describing the fem.
>
> Best regards,
>
> Y.R.
>
> ----- Mail original -----
> De: "Nicolò Cambiaso" <cambiaso.nic...@gmail.com>
> À: "getfem-users" <getfem-users@nongnu.org>
> Envoyé: Lundi 30 Septembre 2019 12:25:51
> Objet: [Getfem-users] Generic Bricks definition using gf_asm.
>
> Dear users,
> I would like to solve a system of equations using Getfemm++ with Matlab
> interface.
> So I created a block matrix, and now i cannot create the corresponding
> bricks.
> I'm using the command "gf_asm", hoping it's the correct one.
>
> the block is the following:
> Mtt=1/k u_t v_t. (v_t is the test function corresponding to u_t)
> in full despair, i also removed the 1/k therm, and still nothing worked.
> this is what i wrote:
>
> gf_asm('generic', mim3, 2, 'Grad_Test2_ut.Grad_Test_ut', -1, 'ut',1, U);
>
> And the error message is:
>
> "Error using gf_matlab
> Error in getfem_generic_assembly.cc, line 9519 void
> getfem::ga_node_analysis(const string&, getfem::ga_tree&, const
> getfem::ga_workspace&, getfem::pga_tree_node, bgeot::size_type,
> bgeot::size_type, bool, bool, int):
> Error in assembly string
>
> Error in gf_asm (line 338)
>     [varargout{1:nargout}]=gf_matlab('asm', varargin{:});
>
> Error in Comeon (line 56)
> Mtt=gf_asm('generic', mim3, 2, 'Grad_Test2_ut.Grad_Test_ut', -1, 'ut',1,
> U);  % M_tt, proviamo"
>
> with
> mim3= gf_mesh_im( mf3, gf_integ('IM_NC(3,1)') )
> mf3=gf_mesh_fem(OmegaM,3)
> OmegaM=gf_mesh('regular simplices',vectX, vectY, vectZ, 'degree', 1)
>
> at his point, i defined U as ones(2,2,2,3), having the vectX(/Y/Z) only 2
> points each one, for now, and because u_t is a 3D vector.
> I think that's not correct, but i have no idea of the correct dimension of
> U, and i tried everything that came to my mind ... and still nothing
> worked.
>
> I found a lot of material dealing with this on c++ interface, but
> unfortunately I cannot male it work in Matlab.
>
> thank you very much,
> Nicolo Cambiaso.
>

Reply via email to