|
From: | Konstantinos Poulios |
Subject: | Re: FW: [EXT] Re: field output size |
Date: | Thu, 20 Jan 2022 00:12:30 +0100 |
for i in range(meshb.nbpts()):
Pt=mfub.basic_dof_nodes(i)
In general avoid loops in Python as much as possible. It is faster to do something like
a = mfub.basic_dof_nodes()[::3,:]
even if it creates a 3 times as long array in the first place.
Anyway the loop is also wrong because i should be a dof, not a point index. You could for example write
a = mfub.basic_dof_nodes(range(0,mfub.nb_basic_dof(),3))
BR
Kostas
Dear all
Now I understand why it prints three times, it is because mfub (displacements) is three dimensions
Thank you
AC
From: Lesage,Anne Cecile J
Sent: Wednesday, January 19, 2022 10:18 AM
To: getfem-users@nongnu.org
Subject: FW: [EXT] Re: field output size
Dear Kostas
I tried this to test the nodes output and its transpose
The problem is that the nodes are printed sequentially three times in a row
np.savetxt("brain_displacements_nodeslines.txt", mfub.basic_dof_nodes(),delimiter=' ', fmt='%f')
a = np.empty([meshb.nbpts(),3])
for i in range(meshb.nbpts()):
Pt=mfub.basic_dof_nodes(i)
a[i][0]=Pt[0]
a[i][1]=Pt[1]
a[i][2]=Pt[2]
np.savetxt("brain_displacements_nodes.txt", a, delimiter=' ', fmt='%f')
thank you
Anne-Cecile
From: Konstantinos Poulios <logari81@googlemail.com>
Sent: Wednesday, January 19, 2022 4:49 AM
To: Lesage,Anne Cecile J <AJLesage@mdanderson.org>
Cc: getfem-users@nongnu.org
Subject: [EXT] Re: field output size
WARNING: This email originated from outside of MD Anderson. Please validate the sender's email address before clicking on links or attachments as they may not be safe.
Dear Anne-Cecilie
You can just save the nodal values to text files, e.g.
numpy.save_txt("brain_displacements.txt",md.variable("ub"))
numpy.save_txt("brain_pressure.txt",md.variable("pb"))
and so on.
If you want to know the coordinates of each degree of freedom, you can also save these in files
numpy.save_txt("brain_displacements_nodes.txt", mfub.basic_dof_nodes())
numpy.save_txt("brain_pressure_nodes.txt", mfpb.basic_dof_nodes())
For displacements and node coordinates you can also reshape your arrays to having 3 columns before exporting.
I hope it helps.
Best regards
Kostas
On Tue, Jan 18, 2022 at 10:56 PM Lesage,Anne Cecile J <AJLesage@mdanderson.org> wrote:
Dear all
I am using python scripting with getfem
I have a mesh with 54026
I output the results in a vtu format with the following script lines
mfoutb = gf.MeshFem(meshb)
mfoutb.set_classical_discontinuous_fem(2)
mfoutb.export_to_vtu("PoroEResect25brain_%i.vtu" % it,
mfub, md.variable("ub"), "Displacements",
mfpb, md.variable("pb"), "Pressure")
when I save the spreadsheet of the results with paraview, I can the results on 2646060
Ideally I would like to have the results only on the 54026 nodes
Is there a way to correct my definition of mfoutb that corrects that?
I am preforming an inverse method on the material parameter typically on 700+ simulations, I need my results files to be smaller
Thank you
Regards
Anne-Cecile
The information contained in this e-mail message may be privileged, confidential, and/or protected from disclosure. This e-mail message may contain protected health information (PHI); dissemination of PHI should comply with applicable federal and state laws. If you are not the intended recipient, or an authorized representative of the intended recipient, any further review, disclosure, use, dissemination, distribution, or copying of this message or any attachment (or the information contained therein) is strictly prohibited. If you think that you have received this e-mail message in error, please notify the sender by return e-mail and delete all references to it and its contents from your systems.
The information contained in this e-mail message may be privileged, confidential, and/or protected from disclosure. This e-mail message may contain protected health information (PHI); dissemination of PHI should comply with applicable federal and state laws. If you are not the intended recipient, or an authorized representative of the intended recipient, any further review, disclosure, use, dissemination, distribution, or copying of this message or any attachment (or the information contained therein) is strictly prohibited. If you think that you have received this e-mail message in error, please notify the sender by return e-mail and delete all references to it and its contents from your systems.
[Prev in Thread] | Current Thread | [Next in Thread] |