/usr/include/libmesh/ensight_io.h is in libmesh-dev 0.7.1-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | // $Id: ensight_io.h 3924 2010-08-24 22:10:57Z roystgnr $
// The libMesh Finite Element Library.
// Copyright (C) 2002-2008 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#ifndef __ensight_io_h__
#define __ensight_io_h__
// The c++ include
#include <string>
#include <map>
#include <vector>
// libMesh includes
#include "libmesh.h"
#include "enum_elem_type.h"
#include "mesh_base.h"
#include "mesh_output.h"
namespace libMesh
{
// Forward declarations
class EquationSystems;
/**
* This class implements writing meshes and solutions in Ensight's Gold format.
* \p author Camata
*/
class EnsightIO : public MeshOutput<MeshBase>
{
public:
/**
* Constructor.
*/
EnsightIO (const std::string &filename, const EquationSystems &eq);
~EnsightIO ();
/**
* add 2D vector: Tell the EnsightIO interface that the variables u and v are a vector.
* Note that u and v should be the same variables defined in the system.
*/
void add_vector (const std::string &system, const std::string &vec_description,
const std::string &u, const std::string &v);
/**
* add 3D vector: tell the EnsightIO interface that the variables u, v and w are vector components
*/
void add_vector (const std::string &system, const std::string &vec_description,
const std::string &u, const std::string &v, const std::string &w);
/**
* add scalar: tell the EnsightIO interface that the variable s is a scalar
*/
void add_scalar (const std::string &system, const std::string &scalar_description,
const std::string &s);
/**
* write solution
*/
virtual void write (const std::string &name);
/**
* write solution
*/
void write (const double time = 0);
bool& has_mesh_refinement();
private:
// Define aux. structures
// Represents the vectors that are used by the EnsightIO
struct Vectors
{
std::string description;
std::vector<std::string> components;
};
// Represents the scalars
struct Scalars
{
std::string scalar_name;
std::string description;
};
// Store the variables of system
struct SystemVars
{
std::vector<Vectors> EnsightVectors;
std::vector<Scalars> EnsightScalars;
};
typedef std::map <std::string, SystemVars> SystemsVarsMap;
typedef std::map <std::string, SystemVars>::iterator SystemsVarsMapIterator;
typedef std::pair<std::string, SystemVars> SystemsVarsValue;
// private methods
// write solution in ascii format file
void write_ascii (const double time = 0);
void write_scalar_ascii (const std::string &sys, const std::string &var);
void write_vector_ascii (const std::string &sys, const std::vector<std::string> &vec, const std::string &var_name);
void write_solution_ascii ();
void write_geometry_ascii ();
void write_case();
void elem_type_to_string (ElemType, char*);
// private Attributes
std::string _ensight_file_name;
std::vector<double> _time_steps;
SystemsVarsMap _systems_vars_map;
const EquationSystems &_equation_systems;
};
} // namespace libMesh
#endif // #define __ensight_io_h__
|