Commit Graph
100 Commits
Author SHA1 Message Date
Bård Skaflestad 3562cde8b9 Merge pull request #786 from atgeirr/unhandled-arguments
Store unhandled command-line arguments
2015-04-14 16:59:45 +02:00
Bård Skaflestad 6d8c89abea Merge pull request #728 from blattms/global-reductions
Added methods for computing global reductions.
2015-01-23 17:28:12 +01:00
Bård Skaflestad 86550fd6c9 effectiveRadius: Fix numerator formula
We must take the square root of the permeability ratios, not use them
as is.  This was lost in the refactorisation commit 96cf137.

Pointy hat: @bska.
2014-09-02 15:12:50 +02:00
Bård Skaflestad 66293e8aed effectiveExtent: Fix out-of-bounds indexing
Commit 96cf137 introduced support for Peaceman index calculation
that honoured general completion directions (X,Y,Z).  This was
accomplished through a permutation index that reordered the
permeability and geometric extent components according to a local
coordinate system along the completion.

In a complete breakdown of logic, however, the d-component extent
vector was indexed as though it were a d-by-d matrix.  This commit
restores sanity to the processing.

Pointy hat: @bska.
2014-09-01 13:30:32 +02:00
Bård Skaflestad 6ab31022fc WellsManager: Support NTG and horizontal completions
This commit extends the feature set of the WellsManager to support
horizontal ("X" and "Y") completions and include the net-to-gross
ratio in the Peaceman index ("Completion Transmissibility Factor,
CTF") of a well completion.  The NTG factor is included if present
in the input deck represented by the "eclipseState".

There are two separate, though related, parts to this commit.  The
first part splits the calculation of Peaceman's "effective radius"
out to a separate utility function, effectiveRadius(), and
generalises WellsManagerDetail::computeWellIndex() to account for
arbitrary directions and NTG factors.  The second part uses
GridPropertyAccess::Compressed<> to extract the NTG vector from the
input if present while providing a fall-back value of 1.0 if no such
vector is available.

Note: We may wish to make the extraction policy configurable at some
point in the future.
2014-08-31 21:24:37 +02:00
Bård Skaflestad 70c0139a0f Annotate namespace closing brace with namespace name 2014-08-29 12:31:35 +02:00
Bård Skaflestad a85638ec12 Adjust white-space for readability
This is mostly just splitting long lines and aligning parameters where
appropriate.  No functional changes.
2014-08-29 12:22:26 +02:00
Bård Skaflestad c0da69925e createWellsFromSpecs: Assert three space dimensions
Method WellsManager::createWellsFromSpecs() is only supported in
three space dimensions.  Assert that we don't use anything else.
2014-08-29 12:18:59 +02:00
Bård Skaflestad 8766e6468c createWellsFromSpecs: Use ref-to-const cart2active
This commit tightens the function header of method

    WellsManager::createWellsFromSpecs()

to accept a reference-to-const 'cartesian_to_compressed' map.  It
used to be a complete, copy-constructed object, so this is a slight
performance enhancement as we no longer need to copy a (somewhat)
large object on every call to the method.
2014-08-29 12:13:38 +02:00
Bård Skaflestad 5f34301b92 getCubeDim: Support arbitrary number of dimensions
This commit generalises the implementation of utility function
'getCubeDim' to support arbitrary number of space dimensions.  In
actual practice there's no change in features as we only really use
a compile-time constant (= 3) to specify the number of space
dimensions.
2014-08-29 11:39:24 +02:00
Bård Skaflestad e77096b258 Merge pull request #638 from totto82/fix_GOC_below
Currectly handling GOC below and WOC above the reservoir
2014-08-29 09:27:56 +02:00
Bård Skaflestad 749a8a5d10 Merge pull request #641 from atgeirr/fix-warnings
Fix warnings
2014-08-28 16:11:12 +02:00
Bård Skaflestad 1307e0fdcf Reimplement assign* in terms of Compressed<>
This is a demonstration of using the

    GridPropertyAccess::Compressed<>

class template.  We save (some) memory by not creating the zero
fall-back vector in assignPermeability(), preferring instead to use
the fall-back/default mechanism of ArrayPolicy::ExtractFromDeck<>.

While here, adjust vector<PermComponent>::reserve() capacity to
reflect actual requirements.
2014-08-27 21:19:41 +02:00
Bård Skaflestad c52175a200 assignPermeability: Remark on storage order
Clients expect column-major (Fortran) ordering of the contiguous
"permeability_" array so that's what we create despite "tensor"
being row-major.

Suggested by: [at] atgeirr
2014-08-27 21:19:40 +02:00
Bård Skaflestad e037142b01 Simplify diagonal component thresholding
This commit switches the assignment

    diagonal = max(diagonal, minval)

to using a reference in the "diagonal" expression.  This guarantees
that the indexing is done once which eases maintainability.  While
here, replace the hard-coded dimension stride ('3') with the current
run-time dimension.  This is mostly for symmetry because the overall
code is only really supported in three space dimension.
2014-08-26 23:50:05 +02:00
Bård Skaflestad e63e28a4f2 Remove obsolete comment
This comment was needed when the code was first developed, but
subsequent development has rendered it obsolete.  Remove it to avoid
confusion.
2014-08-26 23:50:05 +02:00
Bård Skaflestad c0559fa258 Fix semantics of permeability assignment
Calling code relies on permeability tensors being stored in column
major order (row index cycling the most rapidly).  Honour that
requirement.  The previous assignment implied row major ordering
(column index cycling the most rapidly).  This, however, is a
pedantic rather than visible change because the surrounding code
enforces symmetric tensors whence both orderings produce the same
results when the array is viewed contiguously.
2014-08-26 23:50:04 +02:00
Bård Skaflestad 28c8898122 swatInitScaling(): Abide by OPM coding conventions
This commit attaches the reference-signifying ampersand to the type
as is preferred in the OPM code base.

Suggested by: [at] atgeirr
2014-08-07 18:50:07 +02:00
Bård Skaflestad 46c7ff53a2 swatInitScaling(): Remove EOL whitespace
This commit removes several instances of EOL whitespace in function
'swatInitScaling()'.  Aesthetic only.  No functional changes.

Suggested by: [at] atgeirr
2014-08-07 18:50:07 +02:00
Bård Skaflestad 61300523c4 swatInitScaling(): Name magic constant
The constant 1.0e-8 was used as a threshold to distinguish "low"
from "high" capillary pressure values.  Introduce acutual constant
"pc_low_threshold" to clarify that role.

Suggested by: [at] atgeirr
2014-08-07 18:50:07 +02:00
Bård Skaflestad ef9e81ff9b swatInitScaling(): Rename array size parameter
This commit renames the 'np' parameter used to allocate small arrays
for saturations and capillary pressures to 'max_np' to better
reflect its purpose.

Suggested by: [at] atgeirr
2014-08-07 18:50:06 +02:00
Bård Skaflestad 59eedcd82b Initialise saturation points for Pc scaling
This gives predictable failure modes although the actual behaviour
is (probably) unchanged.
2014-08-07 18:50:06 +02:00
Bård Skaflestad d067ef07a2 Consistently refer to BlackoilPhases::Aqua
This avoids confusion.
2014-08-07 18:50:06 +02:00
Bård Skaflestad 2229affcb0 Don't use variable-length arrays
We only support up to 'BlackoilPhases::MaxNumPhases' different
phases (and components), so there's no need to pretend otherwise.
2014-08-07 18:50:06 +02:00
Bård Skaflestad 3a6ac6a759 Reimplement clone_wells() in terms of well_controls_clone() 2014-07-03 16:09:56 +02:00
Bård Skaflestad 81d691e66a wells.h: Document several function
This commit adds Doxygen-style documentation to functions

  - clear_well_controls()
  - set_current_control()
  - wells_equal()

No functional changes.
2014-07-03 16:09:56 +02:00
Bård Skaflestad 033625c5a8 well_controls: Add deep-copy (clone) support
New function well_controls_clone(), implemented in terms of the
public API only, mirrors the objective of function clone_wells(),
only for well control sets.  Add a basic test to demonstrate the
function too.
2014-07-03 16:09:56 +02:00
Bård Skaflestad 24804a1f6f clone_wells(): Assert result equal to input
This adds a debug-mode safety belt that cloning wells produces a
comparable set of wells to the input.
2014-07-03 16:09:56 +02:00
Bård Skaflestad 464b0c3d15 well_controls_equal(): Don't compare set capacities
The 'cpty' field is for internal memory management purposes only.
No client can know of its existence, let alone inspect or directly
change the value, so it should not be used to adjudicate control set
equality.  This was useful during the refactoring work to introduce
the opm-parser support, but its utility has since ceased.

Okay'ed by: [at] atgeirr and [at] joakim-hove
2014-07-03 16:09:56 +02:00
Bård Skaflestad ed5bd42980 Merge pull request #596 from andlaus/fix_some_keyword_names
Fix some keyword names
2014-06-10 23:14:34 +02:00
Bård Skaflestad 97d1a36686 Merge pull request #581 from joakim-hove/GridManager-EclipseGrid-constructor
Grid manager eclipse grid constructor
2014-04-24 16:52:55 +02:00
Bård Skaflestad 29ae3ab836 Merge pull request #572 from andlaus/add_tabdims_to_some_decks
add the missing TABDIMS keyword to the live oil and wet gas unit test data files
2014-04-16 13:48:56 +02:00
Bård Skaflestad d6d58d4045 Declare initBlackoilStateFromDeck(DeckConstPtr)
This was missing in commit 4c2120c and produced some build failures
that were hard to analyse.  I'm not convinced that the underlying
problem is solved, but this does at least restore the build.
2014-04-10 00:51:28 +02:00
Bård Skaflestad 333e110d4f Merge pull request #538 from blattms/parallel-solver-support
Added support for parallel dune-istl solvers
2014-04-08 00:17:35 +02:00
Bård Skaflestad 99d7f61822 Don't reference OwnerOverlap* unless MPI is available
The class OwnerOverlapCopyCommunication is not defined unless MPI is
avilable.  Therefore, we cannot reference the type unless we know
that MPI is available in the current translation unit.
2014-04-07 20:01:18 +02:00
Bård Skaflestad cb32cea7d7 Merge pull request #535 from blattms/add-scalar-product
Explicitly construct the ScalarProduct, and SequentialInformation.
2014-04-04 18:41:56 +02:00
Bård Skaflestad 957ad787ad Merge pull request #508 from atgeirr/adjust-initial-wellrates
Adjustment to well rate initialisation.
2014-03-15 14:59:27 +01:00
Bård Skaflestad d88a5572b8 Merge pull request #506 from atgeirr/suppress-warnings
Suppress warnings
2014-03-06 11:37:17 +01:00
Bård Skaflestad 0fc3571488 Fix fallout from PR #474
The check introduced in PR #474 (commit ad899fc) means all decks
must supply valid depth data.  Update test decks accordingly to
restore "make test".
2014-01-31 14:24:02 +01:00
Bård Skaflestad 311ac78340 Add a layer of glue to extract data from deck
This is a work in progress.
2014-01-23 10:16:49 +01:00
Bård Skaflestad f71ba5a9f7 Install crude handling of data point outside vertical span
The initial implementation of RK4IVP<>::operator() failed to take
into account the possibility that we might need to evaluate the
function outside the vertical span for which it was initially
defined.  This situation occurs, for instance, in the not uncommon
cases of the GOC being above or the WOC being below the model.

This commit installs a crude Hermitian extrapolation procedure to
handle these cases.  Refinements are likely.
2014-01-21 17:54:47 +01:00
Bård Skaflestad 76844c9c59 Include <numeric> for std::iota()
Header was missing in earlier revision.
2014-01-21 17:54:47 +01:00
Bård Skaflestad ada48fd0b5 Document requirements of CellRange. 2014-01-21 17:54:47 +01:00
Bård Skaflestad 955cb795f3 Document public interface of phasePressures(). 2014-01-21 17:54:47 +01:00
Bård Skaflestad 6814b97698 Add reverse look-up mapping for region vectors
Class RegionMapping<> provides an easy way of extracting the cells
that belong to any identified region (e.g., as defined by EQLNUM) of
the deck.
2014-01-21 17:54:47 +01:00
Bård Skaflestad 4114da26bd Test cell subset phase pressure assignment. 2014-01-21 17:54:46 +01:00
Bård Skaflestad c582d00fb6 Compute phase pressures in subset of cells
This commit adds support for assigning the initial phase pressure
distribution to a subset of the total grid cells.  This is needed in
order to fully support equilibration regions.  The existing region
support (template parameter 'Region' in function 'phasePressures()')
was only used/needed to define PVT property (specifically, the fluid
phase density) calculator pertaining to a particular equilibration
region.
2014-01-21 17:54:46 +01:00
Bård Skaflestad 4c39a8a595 Add basic equilibration facility
This commit adds a simple facility for calculating initial phase
pressures assuming stationary conditions, a known reference pressure
in the oil zone as well as the depth and capillary pressures at the
water-oil and gas-oil contacts.

Function 'Opm::equil::phasePressures()' uses a simple ODE/IVP-based
approach, solved using the traditional RK4 method with constant step
sizes, to derive the required pressure values.  Specifically, we
solve the ODE

      dp/dz = rho(z,p) * g

with 'z' represening depth, 'p' being a phase pressure and 'rho' the
associate phase density.  Finally, 'g' is the acceleration of
gravity.  We assume that we can calculate phase densities, e.g.,
from table look-up.  This assumption holds in the case of an ECLIPSE
input deck.

Using RK4 with constant step sizes is a limitation of this
implementation.  This, basically, assumes that the phase densities
varies only smoothly with depth and pressure (at reservoir
conditions).
2014-01-21 17:54:46 +01:00
Bård Skaflestad 2a68bb0341 Add a facility for checking/assigning presence of free phases
This is intentionally black-oil specific because we presently do no
know how to handle other cases (e.g., more phases or number of phases
different from number of components).
2013-12-03 15:56:18 +01:00
Bård Skaflestad 8c8721064d Include <limits> for std::numeric_limits<> template 2013-12-03 15:52:07 +01:00
Bård Skaflestad c24cc87b26 Sort headers into logical groups.
This is an aesthetic-only change.
2013-12-03 15:43:06 +01:00
Bård Skaflestad fca913c6b9 Remove unused "typedef"s
CLang and recent versions of GCC warn about unused "typedef"s.  This
change-set removes currently known instances in opm-core.
2013-09-26 19:22:59 +02:00
Bård Skaflestad 8ad884bbde assemble_well_contrib(): Fix misprint in comment. 2013-09-25 15:39:37 +02:00
Bård Skaflestad e15760856c RESV: Ignore phase distribution for non-PRODUCERs
The WellsManager class handles INJECTORS by assigning a phase
distribution (W->ctrls[i]->distr) that coincides with the injected
fluid for the corresponding well (e.g., {1,0,0} for WATER injectors in
a three-phase WATER/OIL/GAS simulation).  This, however, meshes poorly
with the restriction that all phase components must be ONE in the case
of wells constrained by total reservoir volume flow targets (RESV)
that was introduced in commit b7d1634.

This change-set limits the restriction on phase distributions to
PRODUCERs only and is a tentative solution to GitHub PR #360.
2013-09-25 15:38:55 +02:00
Bård Skaflestad 6858b4290f Merge pull request #285 from rolk/285_shadow
Provide way of shadowing only some properties
2013-07-31 04:05:13 -07:00
Bård Skaflestad 4b42cc2c5d Merge pull request #289 from andlaus/make-gcc44-mandatory
Make gcc44 mandatory
2013-07-30 13:25:35 -07:00
Bård Skaflestad f99377ceec Merge pull request #274 from blattms/non-tr1
Changed std::tr1 occurences to boost.
2013-07-04 12:01:51 -07:00
Bård Skaflestad 85a9a41264 Disable build kluge that is no longer pertinent
The <have_boost_redef.hpp> header was introduced (commit 82369f9) as
a work-around for a particular interaction in the Autotools-based
setup of OPM-Core and the Dune core modules.  Notably, Dune's
"Enable" trick for Boost failed on some older Autoconf systems.  Now
that we're using CMake, however, that kluge is no longer needed
because we (OPM-Core) always

  #define HAVE_BOOST 1

i.e., as an explict true/false value.

Therefore, we need no longer include <have_boost_redef.hpp> .  The
header will be removed at a later time.
2013-06-20 23:14:39 +02:00
Bård Skaflestad a1b0a0af83 Mark deck as FIELD units.
The numbers in the deck are more indicative of FIELD unit conventions
than METRIC unit conventions, so allow the input parser to interpret
the data in that manner.
2013-06-05 12:24:23 +02:00
Bård Skaflestad ac33cd6f17 Merge pull request #240 from atgeirr/tof-improvements
Ensure (average of) tracers sum to one for DG1.
2013-05-14 02:28:21 -07:00
Bård Skaflestad 3f4c2ea564 Always interpret 'ref_pressure' as a double
Otherwise, when specifying (e.g.)

   ref_pressure=1.0e-5

(1 Pascal in bars), the value gets reinterpreted as

   ref_pressure=1

which is one bar.
2013-05-14 10:19:12 +02:00
Bård Skaflestad beaac0d089 Use an integer type for "maxit_" counter.
The "maxit_" counter is an upper limit on the number of non-linear
iterations in a single cell.  Declaring this as a "double" is counter
intuitive unless one expects the number to be *really* high.

Present since
  - Commit 93d4bd8 (TransportModelTwophase.hpp)
  - Commit e0d38cf (TransportModelTwophaseCompressible.hpp)
2013-02-19 11:27:54 +01:00
Bård Skaflestad 2eaf60f680 Index into vectors using integers.
This commit corrects an error that has been present since the
introduction of function wellsToSrc() in commit a50bb8f but was never
detected.  Although the conversion int->double->std::size_t is likely to
be loss-less, it is better to not introduce any more steps than are
actually needed.
2013-02-18 11:49:52 +01:00
Bård Skaflestad 4bf93e31c0 Merge pull request #135 from atgeirr/doc-improvements
Doc and comment improvements
2013-02-06 01:26:29 -08:00
Bård Skaflestad 967403996a Replace an assignment with intended equality test
This corrects a latent error that has been present since the inception
of this module.
2013-02-01 16:30:45 +01:00
Bård Skaflestad 267ec64ae8 Eliminate redundant explicit type conversion.
The pointers in question are already type 'int *'.  There is no need to
explicitly convert them to that type too.
2013-02-01 16:25:46 +01:00
Bård Skaflestad b8e840e81e Eliminate release-mode build warning.
The 'cbottom' variable is only used within an assert().  Don't define
the variable in release (i.e., "NDEBUG") mode.
2013-02-01 16:15:35 +01:00
Bård Skaflestad 62a8a7f527 Use portable method of zeroing vector of ints.
The memset() technique is only applicable to platforms for which
numerical zero is represented by all bits zero.
2013-02-01 16:06:39 +01:00
Bård Skaflestad 95fb0792e5 Bring ParameterGroup interface into scope.
The constructor accepts a parameter::ParameterGroup reference and thus
needs a valid interface in scope.  Relying on header pollution is
unwise.
2013-01-23 17:35:05 +01:00
Bård Skaflestad d9842837b3 Merge remote-tracking branch 'upstream/master' 2013-01-18 13:23:52 +01:00
Bård Skaflestad d0fa32011b Opm::WellState::init(): Handle shut wells
This is a minor bugfix to account for the presence of shut wells
(characterised by "ctrls[w]->current < 0").  The existing code would
lead to indexing outside the "ctrls" array in the context of a shut
well.
2013-01-18 13:23:37 +01:00
Bård Skaflestad 70da461a97 Merge pull request #110 from atgeirr/dg-improvements
Improvements for time-of-flight and tracer computations
2013-01-03 08:25:11 -08:00
Bård Skaflestad 1059611c78 Merge pull request #109 from atgeirr/dg-improvements
DG time-of-flight improvements
2012-12-19 09:09:33 -08:00
Bård Skaflestad ab71ea4780 Merge branch 'master' into gravity-in-wells 2012-11-05 15:48:07 +01:00
Bård Skaflestad a0c8028ea8 Account for gravity in well connection flux calculation
We previously ignored effects of gravity in the calculation of the well
connection fluxes (i.e., perforation fluxes).  This commit includes
those effects where appropriate.
2012-11-01 13:34:27 +01:00
Bård Skaflestad 7406847201 Merge branch 'master' into gravity-in-wells 2012-10-25 10:44:17 +02:00
Bård Skaflestad f9fe3322b6 Merge branch 'master' into gravity-in-wells 2012-10-24 22:43:25 +02:00
Bård Skaflestad 0c599b8868 Fix well classification that was only correct by accident
Specifically, the tests

   if (!wells->type[self_index] == INJECTOR)
   if (!wells->type[self_index] == PRODUCER)

produced the expected results *only* because INJECTOR==0 and PRODUCER==1
in the WellType enumeration, thus (!INJECTOR == PRODUCER) and
(!PRODUCER == INJECTOR).

Installing the (much) more appropriate

    if (wells->type[self_index] != INJECTOR)
    if (wells->type[self_index] != PRODUCER)

is not only more readable, it is also future-proof and scales better if
we ever introduce new WellTypes (e.g., a MONITOR).
2012-10-24 21:12:29 +02:00
Bård Skaflestad 98fd1f05dd Merge branch 'master' into gravity-in-wells 2012-10-24 10:09:31 +02:00
Bård Skaflestad 8e38cd5f5c Merge branch 'master' into gravity-in-wells 2012-10-17 13:30:37 +02:00
Bård Skaflestad 5afc290604 Don't compare floating point numbers for equality. 2012-10-16 21:48:38 +02:00
Bård Skaflestad 75f7a725b3 Update documentation accompanying CompletionData structure.
Specifically, the 'wdp' member is a scalar value at each well
connection.  Phase behaviour is incorporated through other means.
2012-10-16 14:05:33 +02:00
Bård Skaflestad 8a8c29f5ce Rename CompletionData::gpot -> wdp .
This is in preparation of implementing actual gravity support in
(compressible) well-pressure solution.
2012-10-16 13:55:07 +02:00
Bård Skaflestad 10604d237b Document public interface of compr_source module.
This is Doxygen-style reference documentation only.
2012-10-15 19:49:23 +02:00
Bård Skaflestad 80a14f849b Reformat to add Doxygen markup where appropriate 2012-10-15 19:15:31 +02:00
Bård Skaflestad 30cb6eaf7f Document public interface of compr_quant_general module
This is Doxygen-style reference documentation only.
2012-10-15 16:08:17 +02:00
Bård Skaflestad f35663130a Document public interface of cfs_tpfa_residual module
This is Doxygen-style reference documentation only.
2012-10-15 15:21:27 +02:00
Bård Skaflestad 9aa3dcb130 Merge remote-tracking branch 'origin/ert' into ert
Conflicts:
	Makefile.am
2012-10-12 11:04:20 +02:00
Bård Skaflestad b78cd9af58 Merge remote-tracking branch 'upstream/ert' into ert
Conflicts:
	Makefile.am
2012-10-12 10:58:16 +02:00
Bård Skaflestad d3f85ea60c Merge remote-tracking branch 'upstream/master' into ert
Conflicts:
	Makefile.am
	opm/core/grid/cpgpreprocess/preprocess.h
	tests/Makefile.am

This brings ert branch up-to-date with current Github master branch.
2012-10-12 00:43:51 +02:00
Bård Skaflestad d6154d8961 Clone wells object when constructing from existing.
This installs a measure of safety on the part of the interface in that
the caller is free to dispose of the wells object upon returning from
the WellsManager constructor.
2012-10-05 10:15:06 +02:00
Bård Skaflestad e5c5a64a4a New function clone_wells()
Used to create a deep copy (clone) of an existing Wells object.

While here, add test case for common Wells object operations.
2012-10-05 10:14:44 +02:00
Bård Skaflestad 24504875ea Reference <grid.h> from canonical location.
The header was removed from this directory upon import from the
preexisting "opmtransport" repository.
2012-10-05 00:56:12 +02:00
Bård Skaflestad 4d488c98a7 Unequivocally exclude MATLAB timing printing.
It is not actually needed and prevents building when symbol
MATLAB_MEX_FILE is defined.
2012-10-05 00:53:59 +02:00
Bård Skaflestad a92549290f New function clone_wells()
Used to create a deep copy (clone) of an existing Wells object.

While here, add test case for common Wells object operations.
2012-10-04 21:09:47 +02:00
Bård Skaflestad ee23dfd475 Merge remote-tracking branch 'upstream/master' 2012-10-02 20:30:13 +02:00
Bård Skaflestad 6f888db5ea Merge remote-tracking branch 'upstream/master' 2012-10-02 19:30:31 +02:00
Bård Skaflestad 888d0f04ad Merge remote-tracking branch 'upstream/master' 2012-09-27 11:19:47 +02:00
Bård Skaflestad fb8e79857c Add tentative implementation of surface-rate targets.
Not tested at present.
2012-09-26 10:14:45 +02:00
Bård Skaflestad afe4c54b66 Merge remote-tracking branch 'upstream/master' 2012-09-25 13:10:33 +02:00