Kratos: Improvements & suggestions

Created on 23 Apr 2018  Â·  25Comments  Â·  Source: KratosMultiphysics/Kratos

In the last days I've been thinking about some ideas of improvements that could be done, in my opinion, that would improve the flexibility of the code in general.

  • Could be possible to use different time steps / Error tolerance / MaxIterations according to a certain data set provided?

  • In my case if I want to plot some data about the elements/nodes in a file I do it through python but I think that could be useful to have a general feature to plot data in a file.

Thank you,

Discussion Enhancement

Most helpful comment

Why do we need to plot the data? Why not just write the output file, and leave the plotting to an external tool or script (e.g. gnuplot, Excel, matplotlib)

All 25 comments

@pooyan-dadvand correct me if I am wrong, but the idea of the logger is to unify the output and be able to not just "print" an output on the terminal, but files too

@AlejandroCornejo for printing stuff from elements you could use the PointOutputProcess in the core

It supports elements but I am currently extending it to also work with nodes

Thank you @philbucher , I'll take a look.

@AlejandroCornejo were u reffering to the gid_io?

@loumalouomega , I think you are right. The Logger can Add additional outputs (file, for example) but apparently you can't switch. Is this right, @pooyan-dadvand @roigcarlo ?
Could we have coexisting Loggers? Like one Logger for console, another one for a file, then choose one or the other depending on the type of information we are printing. Like
KRATOS_INFO(ChosenLogger, Label)<<"whatever"<<endl;
where ChosenLogger can be an integer, a string, ... I don't know.
Another possibility is to switch between outputs: now the Logger prints to console and file1, now the Logger prints to file2, now back to console and file1. Kind of unconfortable.

Logger is designed for output messages and may become an efficiency bottleneck if used for saving many data. For the output in file we had the sensor object long ago which can be ported to C++ for such problems.

Regarding the logger outputs, as @maceligueta mentions you can have different outputs and filter what you show in each of them. For example having a console output (which is the default output) which filters for info and warning messages and some solver_info file which filters messages related to the convergence and iteration numbers of the solver base on the labels of the messages.

+1 for the suggested solver info

Is this solved?

@AlejandroCornejo After what we said this morning, should we create any utility to generate output files for generating graphics?

I think that could be an interesting feature to plot, especially, gauss points variables because GiD performs an interpolation to the nodes and the values are modified because of that...

In my App I've implemented some methods to print info using the .json to ask the nodes/elements to be printed so we can follow his line or you can suggest a better way.

The question is which app use to plot. There are many options

I found this frikada:

https://github.com/fbbdev/plot

Why do we need to plot the data? Why not just write the output file, and leave the plotting to an external tool or script (e.g. gnuplot, Excel, matplotlib)

Sure, we can use csv, which is a standard

yeah @marandra, my original idea was to develop a tool for printing the data in a txt o whatever and then manage this info with excel, gnu...

I think we still have not solved this

If we wan to create a csv file I would go for porting the Censor class from python to C++

is this still active?

In addition I'd suggest to think about an strategy/scheme that could behave as Static or dynamic according to TIME or any other variable. (imagine strating as static to apply BC asnd the dynamic to perform the rest of the calculation)

The scheme is responsible of that in principle

The @KratosMultiphysics/implementation-committee thinks that the need for an standarized to generate raw data files in a convenient way is there. So it is important to study how to extend the current Logger to support such basic function. @AlejandroCornejo will study the issue and propose a design.

Just thinking load:

  1. I think we should go for a new DataCollector class with some derived classes for getting data from solvers, mesh, etc.
  2. The difference between this one and the 'Logger' would be the fact that for Logger each object pushes the info, and LoggerOutput is in charge of writing it (or not). But in this case, DataCollector would select the data to be taken that can be used for writing or postprocessing (i.e. changing timestep due to some maximum value)
  3. We may have a proper method of DataCollector which takes a LoggerOutput and writes its collected data in the format defined by that output.

This was basically what I was suggesting for the logger manager :)

El mar., 12 nov. 2019 12:44, Pooyan Dadvand notifications@github.com
escribió:

Just thinking load:

  1. I think we should go for a new DataCollector class with some
    derived classes for getting data from solvers, mesh, etc.
  2. The difference between this one and the 'Logger' would be the fact
    that for Logger each object pushes the info, and LoggerOutput is in
    charge of writing it (or not). But in this case, DataCollector would
    select the data to be taken that can be used for writing or postprocessing
    (i.e. changing timestep due to some maximum value)
  3. We may have a proper method of DataCollector which takes a
    LoggerOutput and writes its collected data in the format defined by
    that output.

—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/KratosMultiphysics/Kratos/issues/1926?email_source=notifications&email_token=AEYQZAAZWQMZHO5KWX3SZ4TQTKJIJA5CNFSM4E36MQUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDZ7NNY#issuecomment-552859319,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEYQZACSA5NT6UYIRK4M2RTQTKJIJANCNFSM4E36MQUA
.

Was this page helpful?
0 / 5 - 0 ratings