iMechanica - c++ programming //m.limpotrade.com/taxonomy/term/8988 en Reading XML files containing gzipped data in C++ //m.limpotrade.com/node/21113 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

Once upon a time, the CEO of my company asked me why I did so much software engineering for my work. My response was that software engineers were unlikely to produce what I needed in the short time frames that I had at my disposal without me spending a huge amount of time training them.

I assume that most readers on iMechanica are users of software rather than creators. But the software that you use are being developed by mechanics experts in many cases. These articles are for those who work at the interface of mechanics and software, particularly those who want to move on from Fortran to more expressive languages.

My latest article is on reading compressed data: http://www.parresianz.com/c++/xml/gzip/reading-xml-with-gzipped-data/

-- Biswajit

Tue, 04 Apr 2017 20:23:04 +0000 Biswajit Banerjee 21113 at //m.limpotrade.com //m.limpotrade.com/node/21113#comments //m.limpotrade.com/crss/node/21113
Javascript frontend for simulations? //m.limpotrade.com/node/20935 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

I've been exploring the possibility of frontend development for engineering simulations in Javascript. Following on from the previous post on generating VTK XML particle data output files from our simulation, her's a new post on reading in those files in Javascript. See my article at http://www.parresianz.com/javascript/typescript/vue/vuex/xml/reading-vtk-particles/.

-- Biswajit

Tue, 21 Feb 2017 00:22:34 +0000 Biswajit Banerjee 20935 at //m.limpotrade.com //m.limpotrade.com/node/20935#comments //m.limpotrade.com/crss/node/20935
Particles and VTK //m.limpotrade.com/node/20924 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

The find out how data from your particle simulations can be written out in VTK XML format, examine http://www.parresianz.com/c++/xml/vtk/vtk-particle-output/

-- Biswajit

Fri, 17 Feb 2017 22:37:25 +0000 Biswajit Banerjee 20924 at //m.limpotrade.com //m.limpotrade.com/node/20924#comments //m.limpotrade.com/crss/node/20924
Writing VTK output files in C++ //m.limpotrade.com/node/20917 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

If you're interested in visualizing your data with Visit or Paraview, it's convenient to write out VTK files. If you are a C++ person you will find my post at http://www.parresianz.com/c++/xml/vtk/vtk-output/ of interest.

-- Biswajit

Thu, 16 Feb 2017 22:36:49 +0000 Biswajit Banerjee 20917 at //m.limpotrade.com //m.limpotrade.com/node/20917#comments //m.limpotrade.com/crss/node/20917
JSON or XML for your input files? //m.limpotrade.com/node/20907 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

Either, depending on your taste and use-case. I prefer XML for aesthetic reasons, but that format can get verbose. Check out my new post on how to read JSON files in your C++ code at http://www.parresianz.com/c++/json/json-input/.

-- Biswajit

Tue, 14 Feb 2017 21:09:07 +0000 Biswajit Banerjee 20907 at //m.limpotrade.com //m.limpotrade.com/node/20907#comments //m.limpotrade.com/crss/node/20907
Reading input files in your C++ research code //m.limpotrade.com/node/20897 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

Mechanics research codes are typically written by graduate students who aim to get their work done as quickly as possible. These codes are not meant to last beyond the publication of a few related papers. These files have the advantage that they can be read in quickly using an input file stream and the code for doing that can be written in minutes.

But sometimes these code last beyond the tenure of the student, and some other person (or the student her/himself) has to try to understand the format of the input file. That process can take hours and sometimes days, especially if the format has not been documented and the next person has to dig into the code to understand what each of the numbers means.

I address the problem in my new blog post at http://www.parresianz.com/c++/xml/xml-input/ where I explain how to design XML input files and read them in quickly. A post on JSON input files will follow (hopefully soon).

-- Biswajit

Mon, 13 Feb 2017 22:07:16 +0000 Biswajit Banerjee 20897 at //m.limpotrade.com //m.limpotrade.com/node/20897#comments //m.limpotrade.com/crss/node/20897
Regression testing with the Command design pattern //m.limpotrade.com/node/20891 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

Computational mechanics practitioners are not typically known for practising well-established software engineering techniques. That makes code developed by various research groups next to impossible to understand and modify. I still see requests on iMechanica on how to implement Drucker-Prager models when every freshman student probably has their own implementation. It is likely that the person who developed a particular code cannot themselves understand the code a few years after the relevant paper has been published.

My new blog post discusses a way of quickly developing regression tests that can be used to check whether a small change in the code breaks the calculation. Check it out at http://www.parresianz.com/c++/command-pattern/. This is one of the small steps along the way to make codes last longer than the three years a student needs to complete their PhD.

-- Biswajit

Sun, 12 Feb 2017 03:07:07 +0000 Biswajit Banerjee 20891 at //m.limpotrade.com //m.limpotrade.com/node/20891#comments //m.limpotrade.com/crss/node/20891
Modernizing your old c++ code //m.limpotrade.com/node/20888 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

Continuing yesterday's thread on new C++ productivity tools, here's another one on using clang-tidy to modernize your code automatically to C++11/14. Life becomes markedly easier after the code has been updated. Check out my post at http://www.parresianz.com/c++/clang-tidy/ to see how I've integrated clang-tidy into my toolchain.

-- Biswajit

Fri, 10 Feb 2017 23:15:26 +0000 Biswajit Banerjee 20888 at //m.limpotrade.com //m.limpotrade.com/node/20888#comments //m.limpotrade.com/crss/node/20888
Formatting your C++ code //m.limpotrade.com/node/20883 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

Some of you may be involved in computational work where your students develop C++ codes. If the code is formatted well it's easier to read and understand. With the creation of clang-format, the job of formatting (and not just indentation) can now be automated to a great extent. For a few pointers on how-to, check out my post at http://www.parresianz.com/c++/clang-format/.

-- Biswajit

Fri, 10 Feb 2017 04:11:55 +0000 Biswajit Banerjee 20883 at //m.limpotrade.com //m.limpotrade.com/node/20883#comments //m.limpotrade.com/crss/node/20883
A full-time intern position is available at Siemens Corporate Research (Princeton NJ US) //m.limpotrade.com/node/15100 < div class = "字段field-name-taxonomy-vocabulary-6field-type-taxonomy-term-reference field-label-hidden">

A full-time intern position is available at Siemens Corporate Research (Princeton NJ US)

About SCR:

Siemens Corporate Research & Technology (SCR) in Princeton, New Jersey, USA, has immediate internship openings in the areas of medical image analysis and computer vision. Our focus is to exploit large collections of data to build robust anatomic structure segmentation applications and treatment planning systems. Our interns have an opportunity to test their knowledge in a challenging problem-solving environment. They are encouraged to think out of the box, innovate and find solutions to real-life problems. SCR is one of the world's premier research labs for industrial automation, energy, healthcare. SCR is located in Princeton, USA, and provides a stimulating environment for highly talented and self-motivated researchers. SCR excels in transferring academic research into innovative products, and works in close collaboration with clinical partners. The lab has more than 200 researchers and over 100 students involved in hundreds of University, Clinical and Government collaborations. SCR is part of Siemens Corporate Technology, a division comprising 2500+ research scientists in Princeton, Berkeley, Erlangen, Munich, Berlin, Tokyo, Beijing, Shanghai, Bangalore, St. Petersburg and Moscow. Siemens is an Equal Opportunity Employer encouraging diversity in the workplace.

Requirement:

Candidates must be proficient in C/C++. Project experience and interest in one or more from the topics of structural mechanics, fatigue and fracture, ultrasound/electro-magnetic NDE, (extended) finite element methods, fatigue/creep crack propagation, probabilistic modeling and uncertainty quantification. Software engineering experience is a plus. Students all over the world are welcome to apply and join our dynamic international group of interns.

To Apply:

Please send your detailed resume to Dr. Xuefei Guan:

To: Xuefei.Guan at Siemens.com

Subject: [intern] YourFirstName YourLastName

Indicate availability dates in the message body. Starting and ending dates are negotiable. However, an immediate fill is preferred.

Mon, 12 Aug 2013 13:59:00 +0000 Xuefei Guan 15100 at //m.limpotrade.com //m.limpotrade.com/node/15100#comments //m.limpotrade.com/crss/node/15100